home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / doors / hacker / hacker44.new < prev    next >
Encoding:
Text File  |  1992-12-26  |  62.6 KB  |  1,808 lines

  1. /* C-Net Hacker v4.5 Beta
  2.  
  3.    Original programming/concept by : Patrick Baker
  4.    Modifications for v4.0 by       : Bob Maple
  5.    Modifications for v4.5 by       : Joseph Barrero
  6.  
  7.    This P-File is authorized to be run on legal, LEGITIMATE C-Net AMIGA
  8.    systems ONLY.  It is not authorized to be run on Silicon Valley BBS
  9.    of Colorado.  You may modify this however you like for your own use,
  10.    but it can only be re-distributed in it's original form.
  11.  
  12.    Found a bug?  Leave EMail to 'Diamond Back' on Future World, or call
  13.                     THE FLIPSIDE (305)596-6711.
  14.  
  15. */
  16. JH_BBSName       = 11
  17. JH_Sysop         = 12
  18. DT_NAME          = 100
  19. DT_PASSWORD      = 101
  20. DT_LOCATION      = 102
  21. DT_PHONENUMBER   = 103
  22. DT_SLOTNUMBER    = 104
  23. DT_SECSTATUS     = 105
  24. DT_MESSAGESPOSTED= 109
  25. DT_UPLOADS       = 110
  26. DT_DOWNLOADS     = 111
  27. DT_TIMESCALLED   = 112
  28. DT_TIMELASTON    = 113
  29. DT_TIMEUSED      = 114
  30. DT_TIMELIMIT     = 115
  31. DT_TIMETOTAL     = 116
  32. DT_BYTESUPLOAD   = 117
  33. DT_BYTEDOWNLOAD  = 118
  34. DT_DAILYBYTELIMIT= 119
  35. DT_DAILYBYTEDLD  = 120
  36. DT_EXPERT        = 121
  37. DT_LINELENGTH    = 122
  38. ACTIVE_NODES     = 123
  39. DT_DUMP          = 124
  40. BB_CONFNAME      = 126
  41. BB_CONFLOCAL     = 127
  42. BB_LOCAL         = 128
  43. BB_STATUS        = 129
  44. BB_COMMAND       = 130
  45. BB_MAINLINE      = 131
  46. sendstring=sendmessage;sendfile=showfile;tr=transmit;pm=prompt;ss=sendstring;gu=getuser
  47. parse arg node
  48. options results
  49. nodeid = "AERexxControl"node
  50. msg=sendmessage
  51. tr=transmit;hk=getchar;pm=prompt;sendstring=sendmessage;ss=sendstring;gu=getuser
  52. sendstring=sendmessage;sendfile=showfile;
  53. address value nodeid
  54. options results;signal on syntax;signal on error;signal on ioerr;signal on halt
  55.  
  56.  
  57. save   = 'DOORS:Hacker/'  /*  Main path for all Hacker files  */
  58. play   = save'Players/'                /*  Where user files are stored     */
  59. misc   = save'Misc/'                   /*  BBS intro files, menus, etc..   */
  60. mess   = save'MESSAGES/'               /*  Inter-User Email                */
  61. phones = save'PHONEs/'                 /*  Where BBS numers are kept       */
  62. bnk    = save'BANK/'                   /*  People's banking accounts       */
  63. minbyte= 150000         /*  Minimum amount of memory that needs to be free */
  64.                         /*  at all times during the game                   */
  65. BEGIN:
  66. if storage() < minbyte then do;transmit '\n1\caNot enough memory to run the game safely!'
  67. transmit '\cbEither contact your sysop or if this is a multiline BBS, wait for another'
  68. transmit 'user to finish playing a game (if applicable) and try again.\n1';SHUTDOWN;exit;end
  69.  
  70. call open set, (misc'rxx.setup'), 'R';boom=0;do until boom=1;junk=readln(set)
  71. interpret junk;end;call close set
  72.  
  73. LOGIN:
  74.  
  75. if ~exists(play''name) then do
  76. Transmit '\f1\c3\n1Welcome \cb'NAME'\c1.. \c3You must be a new Hacker\c1.'
  77. transmit '\n1\c3   Enter an alias to use in the game\c1:'
  78. SENDMESSAGE '-> \C7';prompt;ALIAS = UPPER(result)
  79. if ALIAS = '' | alias = '###PANIC' then call quickexit
  80.  
  81. if exists(play'TOTAL') then do;call open file, (play'TOTAL'), 'R';TOTALUSERS = readln(file);call close file;end
  82. if ~exists(play'TOTAL') then do;call open file, (play'TOTAL'), 'W';call writeln file, 0;call close file;end
  83.  
  84. if exists(play'ALIASES') then do;call open file, (play'TOTAL'), 'R'
  85. totalusers = readln(file);call close file;call open file, (play'ALIASES'), 'R'
  86. do i = 1 to TOTALUSERS;tempa = readln(file);j = readln(file)
  87. if upper(tempa) = alias then do;Transmit '\n1\c5That alias already exists, pick another\c1.'
  88. call LOGIN;end;end;call close file;end
  89.  
  90. transmit '\n1\c2Setting up an account\c1...'
  91.  
  92. call open file, (play'TOTAL'), 'W';TOTALUSERS = TOTALUSERS + 1;call writeln file, TOTALUSERS;call close file
  93. call open file, (mess''name), 'W';call writeln file, '0';call close file
  94. call open file, (play''NAME), 'W';call savestats;call close file
  95.  
  96. if ~exists(play'ALIASES') then do;call open file, (play'ALIASES'), 'W'
  97. call writeln file, ALIAS;call writeln file, NAME;call close file;end
  98. else do;call open file, (play'ALIASES'), 'A';call writeln file, ALIAS
  99. call writeln file, NAME;call close file;end
  100.  
  101. if exists(play'REALNAMES') then do;call open file, (play'REALNAMES'), 'A'
  102. call writeln file, NAME;call close file;end
  103.  
  104. if ~exists(play'REALNAMES') then do;call open file, (play'REALNAMES'), 'W'
  105. call writeln file, NAME;call close file;end
  106.  
  107. sendstring '\n1\c3Do you wish to read the instructions of the game\c1? (\c7Y\c1/n) : \cf'
  108. getchar;ans=result;if ans~='N' then sendfile misc'sys.docs';else transmit 'No.\n2'
  109.  
  110. END
  111.  
  112. if exists(misc'winners') then do;sendfile misc''winners;msg RETURN;pm;transmit cls;end
  113. call open file, (play'TOTAL'), 'R';TOTALUSERS = readln(file);call close file
  114. call open file, (play''NAME), 'R';call readstats;call close file
  115. bg = 0
  116. call getdate
  117. call checklplay
  118. if access=23 then call goon
  119. if totalplays < 1 then call goon
  120. GOON:
  121. if ~exists(mess''name) then do;call open gag, (mess''name), 'W'
  122. call writeln gag, '0';call close gag;end
  123. transmit '\cbWelcome back\c1, \c3'name'\c1.\n2\c7Checking for inter-hacker messages\c1..'
  124. call open file, (MESS''NAME), 'R';messtotal = readln(file)
  125. if messtotal=0 then do;call close file;call gooon;end
  126. if messtotal > 0 then do
  127. Transmit '\n1\c3You have \c7'messtotal'\c3 messages\c1.';sendmessage '\n1'RETURN;prompt
  128. do u = 1 to MESSTOTAL;from=readln(file)
  129. Transmit '\f1\caTransmission #\c2'u'\c9, \caFrom \c2'from'\c9:'
  130. do i = 1 to 3;line.i=readln(file);end
  131. Transmit '\n1\cb'line.1'\n1'line.2'\n1'line.3;sendmessage'\n1'RETURN;prompt;end
  132. Transmit '\^1\caEnd of Messages\c1...                          ';call close file;end
  133. call open file, (MESS''NAME), 'W';call writeln file, '0';call close file
  134.  
  135. GOOON:
  136. call CONVERSION
  137.  
  138. if money = 0 & savings < 100 then do
  139.    loan = random(1,250,time('s'))
  140.    Transmit '\n1\c2You are broke 'alias'! \c3The HAA gives you a loan of \c7$\cf'loan'\c1.'
  141.    money = money + loan;bankmoney = bankmoney - loan
  142.    sendmessage'\n1'RETURN;prompt
  143. end
  144. LOTTO:
  145. if money < 2 then do;transmit '\n1\caYou have no money to play the lotto\c1.\n1\w1';call main;end
  146. Transmit '\f1\n1\c4Hacker-Lotto\c1:\n2\c3The hacker lottery costs \c1$\c72.00 \c3per ticket\c1.'
  147. Transmit '\c3You currently have \c1$\c7'money'.00\c3 in your pocket\c1.'
  148. sendstring '\n1\cbDo you wish to play\c1? (y/\c7N\c1) \c3';getchar;tempmon=0
  149. ans = upper(result);if ans = '#' then SHUTDOWN;exit
  150. if ans ~= 'Y' then do;transmit 'No';call checkwardial;call MAIN;end;tix=money/2
  151. if money > 198 then tix=99;if length(tix)=4 then tix=left(tix,2)
  152. if length(tix)=3 then tix=left(tix,1)
  153. sendmessage'Yes\n2\c3How many tickets \c1(\c7Maximum of 'tix'\c1)? \c7';prompt
  154. numtickets = upper(result)
  155. if numtickets <= 99 then do
  156.    if numtickets*2 > money then do
  157.       Transmit 'You do not have enough money!\n1'
  158.       msg RETURN;pm
  159.       call MAIN
  160.    end
  161.    transmit '\n1'
  162.    money = money - numtickets*2
  163.    bankmoney = bankmoney + numtickets*2
  164.    do i = 1 to numtickets
  165.       ranwin = random(1,4,time('s'))
  166.       if ranwin = 1 then do
  167.          moneywon = random(1,100,time('s'))
  168.          Transmit '\^1\c9Ticket \c1#'left(i,2)' \cdWinner of \c9$\cf'moneywon'\c1!\n1'
  169.          money = money + moneywon;tempmon=tempmon+moneywon
  170.          bankmoney = bankmoney - moneywon
  171.       end
  172.       if ranwin = 2 | ranwin = 3 | ranwin = 4 then do
  173.          Transmit '\^1\c1#'left(i,2)' \c2Loser\c1!'
  174.       end
  175.    end
  176. end
  177.  
  178. transmit '\n1\c3You spent \c1$\c7'numtickets*2'.00 \c3on lottery tickets, and won a total of \c1$\c7'tempmon'.00\c1.'
  179. temp=tempmon-(numtickets*2);transmit '\c3You made a "profit" of \c1$\c7'temp'.00\c1.\n1'
  180. msg return;pm
  181. call checkwardial
  182. call MAIN
  183.  
  184.  
  185. MAIN:
  186. if mk = '' then mk = 0;if mkused = '' then mkused = 0
  187. call nc;call conversion
  188. call open file, (play''NAME), 'W';call savestats;call close file
  189. call open file, (play''NAME), 'R';call readstats;call close file
  190.  
  191. sendmessage '\n1\c9\cbSYS\c1:\c3'MAXTURNS-MAINCOUNTER'\c9> \cf';prompt
  192. ANS=upper(result);call NC
  193.  
  194. if ANS = 'LAST' then call LASTFIGHTS
  195.  
  196.  
  197. if ANS = 'BANK' then call bank
  198. if left(ANS,3) = 'HAC' then do;call turns;call HACKOTHER;call main;end
  199. if ANS = 'SPY' then do;call turns;call SPY;end
  200. if ANS = 'ENDCLI' then call BEXIT
  201. if ANS = 'Q' | ans = 'QUIT' then call BEXIT
  202. if ANS = 'DIR' | ANS = '?' then do; sendfile misc'sys.maindir';transmit '\c310 files - 1 directory - 173 blocks - 88342 bytes - 'megs'MB Free';call main;end
  203. if ans = 'HAA' then do
  204.    Transmit '\f1\c3Connecting to the Hackers Association of America\c1\s5....\s0\n2'
  205.    call turns;call HAA
  206. end
  207.  
  208. if ANS = 'SCAN' then do;call turns;call scan;call main;end
  209. if (Access = 23) & (ANS = 'CHECK') then do;wd=1;call checkwardial;call main;end
  210. if ANS = 'CD DIAL' | ans = 'DIAL' then call DIAL
  211. if ANS = 'USER' then do;call USERLIST;call MAIN;end
  212. if ANS = 'TRANS' then do;call SENDMESS;call MAIN;end
  213. if ANS = 'STATS' then do;call YOURSTATS;call MAIN;end
  214. Transmit '\n1\c3Unknown command \cb'ans'\c1.';call MAIN
  215.  
  216. LASTFIGHTS:
  217. if ~exists(play'LAST10') then do
  218.    Transmit '\f1\c3No fights yet\c1..  \c3Try fighting another user\c1.\n1'
  219.    msg RETURN;pm;call MAIN
  220. end
  221. Transmit '\f1\cd  Last 10 User vs. User fight results\c1:\c3\n1';sendfile play'last10'
  222. sendmessage '\n1'RETURN;prompt;call MAIN
  223.  
  224. HACKOTHER:
  225. Transmit '\f1\caAttack another user\c9:\n1'
  226. if megs=0 then do;transmit '\n1\cbYour hard drive is totaled!  \c3Fix it first\c1.';sendmessage '\n1'return;prompt
  227. call main;end
  228. txt='\c3Hack';call listusers;if toget='###' then call main
  229. call open file, (play''toget),'R'
  230. call readostats;call close file;oname=toget
  231.  
  232. if OMEGS = 0 then do
  233.    Transmit '\c5He is already trashed\c1, \c5try hacking some boards\c1!\n1'
  234.    msg RETURN;pm;call MAIN
  235. end
  236.  
  237. CALL OCONVERSION2
  238.  
  239. otnm = left(otnm,20)
  240. ODRIVENAME = left(ODRIVENAME,20)
  241. Stnm = left(tnm,20)
  242. SDRIVENAME = left(DRIVENAME,20)
  243.  
  244. if olfght = ALIAS then do
  245.    sendfile misc'sys.hacklaw'
  246.    sendmessage '\n1'RETURN;prompt;call MAIN
  247. end
  248.  
  249. Transmit '\f1\c3'Oalias', 'OMegs' Megs'
  250. Transmit '\cbHardware: \c7'ODRIVENAME'  \cbSoftware: \c7'otnm
  251. Transmit '\n1                   \c9--\cbVS\c9--\n1'
  252. Transmit '\c3'alias', 'megs' Megs'
  253. Transmit '\c3Hardware:\c7 'SDRIVENAME'  \c3Software:\c7 'Stnm
  254.  
  255. sendstring '\n1\c2Are you sure you want to fight\c1? (y/\c7N\c1) \c7'
  256. getchar;ANS = result;if ans='#' then call quickexit
  257. call NC;if ans ~= 'Y' then call MAIN
  258. Transmit 'Yes\f1';oldmegs = megs;othermegs = omegs
  259. call HACKHIM
  260.  
  261.  
  262. HACKHIM:
  263. YOURTEMPMEGS = MEGS
  264. Transmit '\f1\n1\c5'OALIAS'\c1: \c7'OMEGS' Megs    \c5You\c1: \c7'MEGS' Megs\n1'
  265. Transmit '\c2No viruses allowed here\c1! \c3This is a fight of power\c1!'
  266. Transmit '\n1\c1[\c31\c1] \c7Fight     \c1[\c32\c1] \c7Run\n1'
  267. sendmessage'\c1[\c31,2\c1] \c7';prompt
  268. ANS = upper(result);call NC
  269. if ans = '' | ans='Q' then call HACKHIM
  270. if ANS = '2' then do
  271.    ranhit = random(1,10,time('s'))
  272.    if ranhit < odrtyp then do
  273.       Transmit '\n1\c2&^!@*&%$#*^%(*^%!(*@^%$#*&%$&(^%!@)*#%(&^%$!(@^#%'
  274.       Transmit '\n1\c3Wow!  \cbWhat a blow!'
  275.       dam = random(1,omegs,time('s'));if dam > megs then dam = megs;megs = megs - dam
  276.       if megs < 0 then Transmit '\n1\c2You''re WASTED!'
  277.       Transmit '\n1\c3'dam' Megs were trashed on your drive\c1!'
  278.       OMONEY = OMONEY + MONEY%2;if MONEY > 1 then MONEY = MONEY%2
  279.       If megs <= 0 then do
  280.  
  281. txt = '\cb'ALIAS'\c3 fought\cb 'OALIAS'\c3 on 'DATE' and \caLOST!'
  282. call toptensave
  283.  
  284. oxper = oxper + YOURTEMPMEGS*100
  285. if ttyp > ottyp then do
  286.    ottyp = ttyp
  287.    if ttyp > 1 then ttyp = ttyp - 1
  288.    if ttyp < 1 then ttyp = 1
  289. end
  290. if drty > odrtyp then do
  291.    odrtyp = drty
  292.    if drty > 1 then drty = drty - 1
  293.    if drty < 1 then drty = 1
  294. end
  295. if SCA > 1 then do
  296.    OSCA = OSCA + SCA;SCA = SCA%2
  297. end
  298. if TROJ > 1 then do
  299.    OTROJ = OTROJ + TROJ;TROJ = TROJ %2
  300. end
  301. if BW > 1 then do
  302.    OBW = OBW + BW;BW = BW %2
  303. end
  304. end
  305.  
  306. TOTALLOSS = TOTALLOSS + 1
  307. otwin = otwin + 1;olfght = ALIAS
  308. otmcr = otmcr+DAM;call WRITEHIM;call CONVERSION
  309. end
  310. TOTALLOSS = TOTALLOSS + 1
  311. otwin = otwin + 1
  312. if money > 1 then do
  313.    moneylost = random(1,100,time('s'))
  314.    if moneylost > money then moneylost = money
  315.    money = money - moneylost+10
  316.    OMONEY = OMONEY + MONEYLOST
  317.    Transmit 'You just lost $'moneylost+10'!'
  318.    call WRITEHIM;Transmit ''
  319.  end
  320. call MAIN
  321. END
  322.  
  323. if ANS = '1' then do
  324.    TOHIT = random(1,10,time('s'))
  325.    if TOHIT < ttyp+1 then do
  326.       ydam = random(1,megs,time('s'));if ydam > OMEGS then ydam = OMEGS
  327.       OMEGS = OMEGS - YDAM
  328.       Transmit '\n1\c3You plaster \c2'YDAM' megs \c3 on his drive!'
  329.       if OMEGS <= 0 then do
  330.  
  331. txt = '\cb'ALIAS'\c3 fought\cb 'OALIAS'\c3 on 'DATE' and \cdWON!'
  332. call toptensave
  333.  
  334. Transmit '\n1\c2He is obliterated\c1!'
  335. xrp = xrp + othermegs*1000
  336. money = money + OMONEY%2
  337. findmoney = omoney%2
  338. omoney = omoney - OMONEY%2
  339. Transmit '\n1\c3You get \cb'othermegs*1000'\c3 experience points.'
  340. if OMONEY > 0 then Transmit 'You find $'FINDMONEY'!'
  341. if OTROJ > 0 then Transmit 'You find 'OTROJ' Trojans!'
  342. if OBW > 0 then Transmit 'You find 'OBW' Byte Warriors!'
  343. if OSCA > 0 then Transmit 'You find 'OSCA' SCAs!'
  344. sendstring '\q1'
  345.  
  346. if ottyp > ttyp then do
  347.    ttyp = ottyp
  348.    if ottyp > 1 then ottyp = ottyp - 1
  349.    if ottyp < 1 then ottyp = 1
  350. end
  351. if odrtyp > drty then do
  352.    drty = odrtyp
  353.    if odrtyp > 1 then odrtyp = odrtyp - 1
  354.    if odrtyp < 1 then odrtyp = 1
  355. end
  356. if OSCA >= 1 then do
  357.    SCA = OSCA + SCA
  358.    OSCA = OSCA%2
  359.    if OSCA <=1 then OSCA = 0
  360. end
  361. if OTROJ >= 1 then do
  362. TROJ = OTROJ + TROJ
  363. OTROJ = OTROJ %2
  364. if OTROJ <=1 then OTROJ = 0
  365. end
  366. if OBW >= 1 then do
  367. BW = BW + OBW
  368. OBW = OBW %2
  369. if OBW <=1 then OBW = 0
  370. end
  371. TOTALWINS = TOTALWINS + 1
  372. otloss = otloss + 1
  373. call WRITEHIM
  374. end
  375. end
  376.  
  377. if TOHIT >= ttyp+1 then do
  378.    ranmess = random(1,3,time('s'))
  379.    sendstring '\c2'
  380.    if ranmess = 1 then Transmit 'You missed him!'
  381.    if ranmess = 2 then Transmit 'He eludes you!'
  382.    if ranmess = 3 then Transmit 'Nothing happens!'
  383. end
  384. Transmit '\q1'
  385. OTOHIT = random(1,10,time('s'))
  386. if OTOHIT < ottyp+1 then do
  387.    hdam = random(1,Omegs,time('s'))
  388.    if hdam > MEGS then hdam = MEGS
  389.    MEGS = MEGS - hDAM
  390.    Transmit '\c2He smashes \q1'hDAM'\c2 megs on your drive!\q1'
  391.  
  392.    if MEGS <= 0 then do
  393.  
  394. txt = '\cb'ALIAS'\c3 fought \cb'OALIAS'\c3 on 'DATE' and \caLOST!'
  395. call toptensave
  396.  
  397.  sendstring '\c7'
  398.  ranlose = random(1,5,time('s'))
  399.  if ranlose = 1 then Transmit 'You are TOAST!'
  400.  if ranlose = 2 then Transmit 'He over powers you!'
  401.  if ranlose = 3 then Transmit 'You didnt have a chance!'
  402.  if ranlose = 4 then Transmit ALIAS's funeral services are Thursday at 2pm!'
  403.  if ranlose = 5 then Transmit OALIAS' devastates your entire drive!'
  404.  sendstring '\q1'
  405.  oxper = oxper + oldmegs*1000
  406.  Omoney = Omoney + MONEY%2
  407.  money = money - MONEY%2
  408.  
  409.  if ttyp > ottyp then do
  410.     ottyp = ttyp
  411.     if ttyp > 1 then ttyp = ttyp - 1
  412.     if ttyp < 1 then ttyp = 1
  413. end
  414.  if drty > odrtyp then do
  415.     odrtyp = drty
  416.     if drty > 1 then drty = drty - 1
  417.     if drty < 1 then drty = 1
  418.  end
  419.  if SCA >= 1 then do
  420.     OSCA = OSCA + SCA
  421.     SCA = SCA%2
  422.     if SCA <=1 then SCA = 0
  423.  end
  424.  if TROJ >= 1 then do
  425.     OTROJ = OTROJ + TROJ
  426.     TROJ = TROJ %2
  427.     if TROJ <=1 then TROJ = 0
  428.  end
  429.  if BW >= 1 then do
  430.     OBW = BW + OBW
  431.     BW = BW %2
  432.     if BW <=1 then BW = 0
  433.  end
  434.     otwin = otwin + 1
  435.     TOTALLOSS = TOTALLOSS + 1
  436.     call WRITEHIM
  437.     end
  438. end
  439.  
  440. if OTOHIT >= ottyp+1 then do
  441.    sendstring '\c4'
  442.    ranmess = random(1,5,time('s'))
  443.    if ranmess = 1 then Transmit 'He doesnt do anything!'
  444.    if ranmess = 2 then Transmit 'You out witted him!'
  445.    if ranmess = 3 then Transmit 'Nothing happens to you!'
  446.    if ranmess = 4 then Transmit 'Your drive is safe this time!'
  447.    if ranmess = 5 then Transmit 'Your drive is safe this time!'
  448. end
  449. sendstring '\q1'
  450. msg RETURN;pm
  451. call HACKHIM
  452. end
  453.  
  454.  
  455.  
  456. WRITEHIM:
  457. olfght = ALIAS
  458. call open file, (play''ONAME),'W'
  459. call saveostats
  460. call close file
  461. LASTFIGHT = OALIAS
  462. call open file, (play''NAME), 'W'
  463. call savestats
  464. call close file
  465. sendmessage'\n1'RETURN;prompt;transmit '\n2\caExiting Hacker combat\c9..\n1'
  466. call MAIN
  467.  
  468. HAA:
  469. sendfile misc'sys.haa'
  470. sendstring '\n1  \c9[\cbHAA Main\c9]: \c3'
  471. getchar;ANS = upper(result);call NC
  472.  
  473. if ANS='Q' | ans='8' | ans='CD /' then do;Transmit '\caDisconnecting\c9..';call MAIN;end
  474.  
  475. if ans = '1' then call fixdrive
  476.  
  477. if ans = '2' then do
  478.    if money <= 0 then do
  479.       Transmit '\c4You need money first\c1!!\n1'
  480.       msg RETURN;pm;call HAA
  481.    end
  482.    call CREDITCARDS
  483. end
  484.  
  485. if ANS = '3' then do
  486.    sendfile misc'sys.terminal'
  487.    Transmit '\n1\c3You are currently using \cb'tnm'\c3 and have \c1$\c7'money'\c1.\n1'
  488.    sendmessage'\c3Terminals \c1(\c7S\c1=\cfSell\c1, \c7Q\c1=\cfQuit\c1)? \c9';prompt;ANS=upper(result);call NC
  489.    if ans = ttyp then do
  490.       Transmit '\n1\c2You are already using 'tnm'\c1!\n1'
  491.       msg RETURN;pm;call HAA
  492.    end
  493.    if ans = 'Q' | ans = '' then call HAA
  494.    if ans = 'S' then do
  495.       if ttyp=1 then do;transmit '\n1\caYou have the worst term\c9!  \c2Selling not possible\c1.\n1\w2';call haa;end
  496.       ans=ttyp;call termcost;transmit '\n1\c3The HAA will give you \c1$\cb'cost/2' \c3for your \cb'tnm'\c1.'
  497.       sendstring '\c3Do you still wish to sell it\c1?  (y/\c7N\c1) \cf';getchar;ans=result
  498.       if ans ~='Y' then call haa;transmit 'Sold.';money=money+(cost/2);ttyp=1;call conversion;call haa
  499.    end
  500.    if ans = '1' | ans < ttyp then do
  501.       if ans = ttyp then Transmit '\n1\caYou already have that\c1!'
  502.       if ans < ttyp then Transmit '\n1\caThat is a worse terminal than what you have\c1!'
  503.       sendmessage '\n1'RETURN;prompt
  504.       call HAA
  505.    end
  506.  if ans > 1 & ans < 10 then do
  507.    call termcost
  508.  
  509.    if money < cost then do
  510.       Transmit '\n1\caYou do not have enough money\c1!'
  511.       sendmessage'\n1'RETURN;prompt
  512.       call HAA
  513.    end
  514.    money = money - cost
  515.    bankmoney = bankmoney + cost
  516.    ttyp = ans;call conversion
  517.    Transmit '\n1\c3'tnm' bought for the price of \c1$\c7'cost'\c1.\n1'
  518.    msg RETURN;pm
  519.  end
  520.    call HAA
  521. end
  522.  
  523. if ans = '4' then do
  524.    sendfile misc'sys.hardware'
  525.    Transmit '\n1\c3You are currently using a \cb'drivename'\c3 and have \c1$\c7'money'\c1.'
  526.    sendmessage '\n1\c3Hardware \c1(\c7S\c1=\cfSell, \c7Q\c1=\c7Quit\c1)? \c7';prompt
  527.    ANS=upper(result);call NC
  528.    if ans='S' then do
  529.       if drty=1 then do;transmit '\n1\caYou are using the worst backup method\c9! \c2Selling not possible\c1.\n1\w2';call haa;end
  530.       ans=drty;call hardcost;transmit '\n1\c3The HAA will give you \c1$\cb'cost/2' \c3for your \cb'drivename'\c1.'
  531.       sendstring '\c3Do you still wish to sell it\c1?  (y/\c7N\c1) \cf';getchar;ans=result
  532.       if ans ~='Y' then call main;transmit 'Sold.';money=money+(cost/2);drty=1;call conversion;call haa
  533.    end
  534.    if ans = drty then do
  535.       Transmit '\n1\c4You are already using 'drivename'\c1!\n1'
  536.       msg RETURN;pm;call HAA
  537.    end
  538.    if ans = 'Q' | ans = '' then call HAA
  539.    if ans = '1' | ans < drty then do
  540.       if ans = ttyp then Transmit '\n1\caYou already have that\c9!'
  541.       if ans < ttyp then Transmit '\ca\n1That backup is worse than what you have\c9!'
  542.       sendmessage'\n1'RETURN;prompt
  543.       call HAA
  544.    end
  545.  if ans >= 2 & ans <= 7 then do
  546.     call hardcost
  547.  end
  548.  
  549.    if money < cost then do
  550.       Transmit '\n1\c2You do not have enough money\c1!\n1'
  551.       msg RETURN;pm;call HAA
  552.    end
  553.  
  554.    money = money - cost;bankmoney = bankmoney + cost
  555.    drty = ans;call conversion
  556.    Transmit '\n1\c3'drivename' Backup bought for the price of \c1$\c7'cost'\c1!\n1'
  557.    msg RETURN;pm
  558.    call HAA
  559. end
  560.  
  561. if ans = '5' then do
  562.    sendfile misc'sys.virus'
  563.    Transmit '\n1\c3You have \c1$\c7'money'.00\c1\n1'
  564.    sendmessage'\c3Viruses \c1(\c7Q\c1=\c7Quit\c1)? \cf';prompt;ANS=upper(result);call NC
  565.    if ans = 'Q' | ans = '' then call HAA
  566.    if ans = 1 then cost = 100;if ans = 2 then cost = 1000
  567.    if ans = 3 then cost = 2500
  568.    if money < cost then do
  569.       Transmit '\n1\caYou do not have enough money\c9'
  570.       sendmessage'\n1'RETURN;prompt;call HAA
  571.    end
  572.    if ans = 1 then virusbought = 'Byte Warrior'
  573.    if ans = 2 then virusbought = 'SCA';if ans = 3 then virusbought = 'Trojan'
  574.  
  575.    sendmessage '\n1\cbBuy how many\c1? \c7';prompt
  576.    numbought = upper(result);call NC
  577.    if numbought = '' | numbought ~< 99 then call HAA
  578.  
  579.    if money < numbought * cost then do
  580.       Transmit '\n1\caYou do not have enough money\c1!\n1'
  581.       msg RETURN;pm;call HAA
  582.    end
  583.    totalcost = numbought * cost
  584.    if numbought > 1 then Transmit '\n1\c7'numbought'\cf 'virusbought's bought for \c1$\c7'totalcost'\c1.'
  585.  
  586.    if ans = 1 then BW = BW + NUMBOUGHT
  587.    if ans = 2 then SCA = SCA + NUMBOUGHT
  588.    if ans = 3 then TROJ = TROJ + NUMBOUGHT
  589.    money = money - totalcost
  590.    bankmoney = bankmoney + totalcost
  591.    sendmessage'\n1'RETURN;prompt;call HAA
  592. end
  593.  
  594. if ans = '6' then do
  595.    Transmit '\f1\cbGambling is a bad habit\c1!  \cbYou have a \c350%\cb chance of losing\c1!\n1'
  596.    Transmit '\ca  Gamble how much money \c1(\c30 to quit\c1)?'
  597.    sendmessage '\c1> \cf';prompt;ANS=upper(result);call NC
  598.    if ANS = 0 | ANS='Q' | ANS='' then call HAA
  599.    if ANS > MONEY then do
  600.        Transmit '\caNot enough money\c1..\n1'
  601.        msg RETURN;pm;call HAA
  602.     end
  603.     RANWIN = RANDOM(1,2,time('s'))
  604.       if RANWIN = 1 then do
  605.          Transmit ''
  606.          ranmess = random(1,3,time('s'))
  607.          if ranmess = 1 then Transmit 'You are a loser!'
  608.          if ranmess = 2 then Transmit 'What a waste of money!'
  609.          if ranmess = 3 then Transmit 'You would do lousy in Vegas!'
  610.          MONEY = MONEY - ANS
  611.          bankmoney = bankmoney + ans
  612.          sendmessage'\n1'RETURN;prompt;call HAA
  613.       end
  614.       Transmit ''
  615.       if ANS <= 1000 then do
  616.          MONEY = MONEY + (ANS * 2)
  617.          bankmoney = bankmoney - ans*2
  618.          Transmit 'You won $'ANS*2'  What luck!'
  619.       end
  620.       if ANS > 1000 then do
  621.          Transmit 'You won $'ANS*2'! Outstanding!'
  622.          MONEY = MONEY + (ANS * 2)
  623.          bankmoney = bankmoney - ans*2
  624.       end
  625.       sendmessage'\n1'RETURN;prompt;call HAA
  626.    END
  627.  if ans = '7' then do;call wardial;call haa;end
  628.  if ans = '?' then do
  629.     call HAA
  630.  end
  631.  
  632. FIXDRIVE:
  633. if ans='1' then do;tofixcost = level*5;maxmegs = level * 10
  634. canfix = maxmegs - megs;if megs = maxmegs then do
  635.   Transmit '\c3Your hard drive isn''t damaged\c1.'
  636.   sendmessage'\n1'RETURN;prompt;call HAA
  637. end
  638. if MONEY <=0 & savings < 100 then do
  639.   Transmit '\n2\caYou are out of money\c1!  \cbYou are given \c1$\c3100\cb from the HAA\c9.'
  640.   money = money + 100;bankmoney = bankmoney - 100
  641. end
  642. Transmit '\n2\c3You have \c7'canfix' \c3megabytes of damage\c1.'
  643. Transmit '\c3Repair costs run \c1$\c7'tofixcost'\c3 per meg to fix\c1.'
  644. sendmessage '\n1\c3Fix how many\c1? \c7';prompt
  645. tofix = upper(result);call NC
  646. if tofix > maxmegs | tofix > canfix then do
  647.   Transmit '\n1\c5You don''t even have that big of a hard drive\c1.\n1'
  648.   sendmessage RETURN;prompt;call HAA
  649. end
  650. if tofix = '' then call HAA
  651. if tofix = '###PANIC' then call QUICKEXIT
  652. if money < tofixcost*tofix then do
  653.    Transmit '\n1\c2Not enough money\c1!\n1'
  654.    sendmessage RETURN;prompt;call HAA
  655. end
  656. megs = megs + tofix;money = money - tofixcost*tofix
  657. bankmoney = bankmoney + tofixcost*tofix
  658. Transmit '\n1\c7'tofix'\c3 megs repaired at a total cost of \c1$\c7'tofixcost*tofix'\c1.\n1'
  659. msg RETURN;pm;call HAA
  660. END
  661. call HAA
  662.  
  663. CREDITCARDS:
  664. if thecard > 10 then do;transmit '\n1\caYou''ve hacked enough cards today\c9.\w2';call haa;end
  665. Transmit 'Credit Cards\f1\n1\c3Hacking credit cards is dangerous but if you succeed you can get a large'
  666. Transmit 'sum of money.  There are several different cards which you can hack\c1.\n1'
  667. Transmit '\c1[\c5H\c1]\cdack a card     \c1[\c5L\c1]\cdist Credit Cards to hack\n1\c1[\c5Q\c1]\cduit to HAA\n1'
  668. msg'\c1[\cfCards\c1> \c7';pm
  669. ans = upper(result)
  670. call NC
  671. if ans = 'Q' | ans='' then call HAA
  672. if ans = 'H' then do
  673.    Transmit '\n1  \c3Hack which card \c1[\c71-12; 12 being most difficult\c1]'
  674.    msg'> \c5';pm;card = upper(result)
  675.    if card <= 0 | card > 12 then do
  676.       Transmit '\n1\c2That card does not exist\c1...\n1'
  677.       msg RETURN;pm
  678.       call CREDITCARDS
  679.    end
  680.    call open file, (misc'rxx.cardconvrt'), 'R';do i = 1 to 15;temp=readln(file);interpret temp;end;call close file
  681.    sendstring '\n1\c3Hacking \c5'CCARD'\c1... \c2Please hold\c1..\w1';thecard=thecard+1
  682.    cchack = random(1,14,time('s'))
  683.    if cchack < CARD then do
  684.       Transmit '\c2You are CAUGHT by the FEDS\c1!'
  685.       ranpen = random(1,5,time('s'))
  686.       if ranpen = 1 | ranpen = 2 then do
  687.          Transmit '\c3You get off easy with a slap on the wrists!\n1'
  688.          msg RETURN;pm;call HAA
  689.       end
  690.       if ranpen = 3 then do
  691.          moneylos = maxwin
  692.          if moneylos > money then moneylos = money
  693.          Transmit '\n1\c2You are caught by the FEDS\c1! \c5They penalize you \c1$\c7'moneylos'\c1!!'
  694.          money = money - moneylos;bankmoney = bankmoney + moneylos
  695.          msg'\n1'RETURN;pm;call HAA
  696.       end
  697.       if ranpen = 4 then do
  698.        if xrp > 30000 then do
  699.          Transmit '\c5The HAA is rather embarassed, they penalize you'
  700.          Transmit '30000 experience points\c1.'
  701.          xrp = xrp - 30000
  702.          Transmit '\n1\c3They formatted your hard drive as well\c1.\n1'
  703.          megs = 0;msg RETURN;pm;call HAA
  704.        end
  705.        xrp = 0
  706.        Transmit '\c3The HAA is rather embarassed, you are penalized to level 1\c1.'
  707.        Transmit '\c2Sorry\c1!  \c3It will teach you for the future\c1!\n1'
  708.        xrp = 0;megs = 0;msg RETURN;pm;call HAA
  709.       end
  710.       if ranpen = 5 then do
  711.          if money < maxwin then maxwin = money
  712.          Transmit '\c3The FBI catches you and fines you \c1$\c7'MAXWIN'\c3 for your crimes\c1.\n1'
  713.          money = money - maxwin;bankmoney = bankmoney + maxwin
  714.          msg RETURN;pm;call HAA
  715.       end
  716.    end
  717.    Transmit '\c3You got away with \c1$\c5'maxwin'\c1!\n1'
  718.    money = money + maxwin;bankmoney = bankmoney - maxwin
  719.    msg RETURN;pm;call HAA
  720. end
  721.  
  722. if ans = 'L' then do
  723.    sendfile misc'sys.CreditCards'
  724.    msg RETURN;pm;call CREDITCARDS
  725. end
  726. call HAA
  727.  
  728. DIAL:
  729.  sendfile misc'sys.dialer'
  730.  msg'\n1\c9[\cbSYS:Terms ('maxturns-maincounter') \c9> \cf';pm
  731.  ANS = upper(result);call NC
  732.  if ANS = 'TERM' then do;call turns;call DIALOUT;end
  733.  if ANS = 'DIR' then do
  734.     call DIAL
  735.  end
  736.  if ANS = 'ENDCLI' then call BEXIT
  737.  if ANS = 'Q' | ans = 'QUIT' then call BEXIT
  738.  if (Access = 23) & (ANS = 'ADD') then call AddNumbers
  739.  if ANS = 'CD ROOT' | ans = 'ROOT' | ans = 'CD /' then call MAIN
  740.  if ANS = 'NUMBERS' then do
  741.     call NUMBERLIST;call DIAL
  742.  end
  743.  Transmit '\n1\c3Unkown command.\n1\w2'
  744. call DIAL;call BEXIT
  745.  
  746. DIALOUT:
  747.  if MEGS <= 0 then do
  748.     Transmit '\n1\c3You do not have enough storage to do this\c1.  \c3Contact the'
  749.     Transmit '\c7Hackers Association of America\c3 and repair your hard drive\c1.\n1'
  750.     msg RETURN;pm;call DIAL
  751.  end
  752.  CALLINGFLAG = 0;FOUNDFLAG = 0
  753.  transmit '\c1(\c3SYS\c1:\c3Terms/\c1>\w1 \s0[CLI 2]\n1\w2\c1(\c3SYS\c1:\c3Terms/\c1>\s9 \s0'
  754.  Transmit '\f1\c3'tnm' v 1.0 All Rights Reserved'
  755.  WW=0;HAH=0
  756.  Transmit '\c7Initializing Modem\c1...\n2\s2AT&C1H0E0X1S2=1M1\s0\n2'
  757.  msg'\c3ATDT *70\c1,\c7';pm
  758.  TODIAL = UPPER(RESULT)
  759.  if todial='' then call dial
  760.  if exists(PHONES'LOCAL') then do
  761.     call open file, (PHONES'LOCAL'), 'R'
  762.          telnum = readln(file)
  763.          do i = 1 to telnum
  764.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  765.             locmg.i = readln(file);locwin.i = readln(file)
  766.             loclos.i = readln(file)
  767.             if LOCALNUM.i = TODIAL then do
  768.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  769.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i;FOUNDLOOP = I
  770.                FOUNDFLAG = 1;CALLINGFLAG = 1
  771.             end
  772.          end
  773.     call close file
  774.  
  775.     if foundflag = 0 then do
  776.     call open file, (PHONES'HAA'), 'R'
  777.          telnum = readln(file)
  778.          do i = 1 to telnum
  779.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  780.             locmg.i = readln(file);locwin.i = readln(file)
  781.             loclos.i = readln(file)
  782.             if LOCALNUM.i = TODIAL then do
  783.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  784.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  785.                FOUNDLOOP = I;WW=1;HAH=1;FOUNDFLAG = 1;CALLINGFLAG = 5
  786.             end
  787.          end
  788.     call close file
  789.     end
  790.  
  791.     if foundflag = 0 then do
  792.     call open file, (PHONES'WAR'), 'R'
  793.          telnum = readln(file)
  794.          do i = 1 to telnum
  795.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  796.             locmg.i = readln(file);locwin.i = readln(file)
  797.             loclos.i = readln(file)
  798.             if LOCALNUM.i = TODIAL then do
  799.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  800.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  801.                FOUNDLOOP = I;WW=1;FOUNDFLAG = 1;CALLINGFLAG = 4
  802.             end
  803.          end
  804.     call close file
  805.     end
  806.  
  807.     if foundflag = 0 then do
  808.     call open file, (PHONES'MAINFRAMES'), 'R'
  809.          telnum = readln(file)
  810.          do i = 1 to telnum
  811.             locnm.i = readln(file);LOCALNUM.i = readln(file)
  812.             locmg.i = readln(file);locwin.i = readln(file)
  813.             loclos.i = readln(file)
  814.             if LOCALNUM.i = TODIAL then do
  815.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  816.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  817.                FOUNDLOOP = I;FOUNDFLAG = 1;CALLINGFLAG = 2
  818.             end
  819.          end
  820.     call close file
  821.     end
  822.  
  823.     if foundflag = 0 then do
  824.     call open file, (PHONES'GOV'), 'R'
  825.          telnum = readln(file)
  826.          do i = 1 to telnum
  827.             locnm.i = readln(file);LOCALNUM.i = readln(file);locmg.i = readln(file)
  828.             locwin.i = readln(file);loclos.i = readln(file)
  829.             if LOCALNUM.i = TODIAL then do
  830.                fndnum = TODIAL;fndnm = locnm.i;fndmeg = locmg.i
  831.                fndloss = loclos.i;FOUNDWINS = FOUNDWINS.i
  832.                FOUNDFLAG = 1;CALLINGFLAG = 3;FOUNDLOOP = I
  833.             end
  834.          end
  835.     call close file
  836.     end
  837.     if FOUNDFLAG = 0 then do
  838.        Transmit '\n1\caThat number is not listed\c1!  \cbTry typing ''Numbers'' for a listing'
  839.        Transmit 'of possible numbers to dial\c1.\n1';maincounter=maincounter-1
  840.        msg RETURN;pm;call DIAL
  841.     end
  842.     if fndmeg > 999 then do;transmit '\n2\caBBS Over 999 Megs! Error\c9..\w1';call dial;end
  843.     if lastfight=fndnm then do;transmit '\n1\c3You already hacked that BBS.  Try a diferent one.\n1\w2';call dial;end
  844.     msg '\n1'RETURN;pm
  845.     Transmit '\f1\c2Dialing\c1..'
  846.     transmit '\n1\c3ATDT *70,'fndnum
  847.     OTHERMEGS = fndmeg
  848.     transmit '\w3';gaga=random(1,10,time(s));if gaga='1' | gaga = '2' then do;transmit '\n1\c1BUSY\n1\w2';call dial;end
  849.     if gaga='9' | gaga='10' then do;transmit '\n1\c1NO CARRIER\n1\w2';call dial;end
  850.     Transmit '\f1\b1'
  851.     if ttyp <= 2 then Transmit '\s2CONNECT 300\n1\w2'
  852.     if ttyp >= 3 & ttyp <= 4 then Transmit '\s1CONNECT 1200\n1\w2'
  853.     if ttyp >= 5 & ttyp <= 6 then Transmit 'CONNECT 2400\w2'
  854.     if ttyp >= 7 & ttyp <= 8 then Transmit 'CONNECT 9600\w2'
  855.     if ttyp >= 9 & ttyp <= 15 then Transmit 'CONNECT 19200\w2'
  856.  
  857.   if (CALLINGFLAG = 1) | (Callingflag=4) | (CallingFlag=5) then do
  858.     if exists(misc||fndnm) then do;sendfile misc||fndnm;end;else sendfile misc'sys.Generic'
  859.   end
  860.  
  861.   if CALLINGFLAG = 2 then do
  862.      Transmit '\c2VAX VMS MAINFRAME V5.12\q1';Transmit '\n1\c3Licensed to 'fndnm
  863.      Transmit '\n1\q1Local>_\n2'
  864.   end
  865.  
  866.   if CALLINGFLAG = 3 then do
  867.      Transmit fndnm' \c2computer\q1'
  868.      Transmit '\c2This is a Goverment restricted area.  If you are not authorized log off at'
  869.      Transmit 'once!  Federal law prohibits any hacking or piracy anywhere!\q1\n2'
  870.      Transmit '\c3To login, enter information using this format\c1:'
  871.      Transmit ' \c3[USERNAME] \q1/ \c3[PASSWORD#1]\q1 / \c3[PASSWORD#2]\q1 / \c3[USERID#]\q1\n2@>'
  872.   end
  873.  
  874.      Transmit '\c9  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
  875.      Transmit '  ³       \cdNow is your chance\c1!  \c5Should you hack or run\c1?                \c9³'
  876.      Transmit '  ³                                                                   ³'
  877.      Transmit '  ³             \c1[\c3H\c1]\c3ack\c1                                                \c9³'
  878.      Transmit '  ³             \c1[\c3R\c1]\c3un\c1                                                 \c9³'
  879.      Transmit '  ³                                                                   ³'
  880.      Transmit '  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n1'
  881.      Sendstring '\^3\>4\c2Choice\c1? \c7'
  882.      getchar;ANS = result
  883.      call NC;if ANS = 'H' then do
  884.         Transmit 'Hack';call FIGHTINIT
  885.      end
  886.      Transmit '\n2+++\n1\w2\s1NO CARRIER\s0\n1\w1'
  887.      call DIAL
  888.  
  889. FIGHTINIT:
  890.    TFM = left(fndmeg,5);TFN = left(fndnm,20);TYM = left(MEGS,4)
  891.    TBW = left(BW,5);TTR = left(TROJ,5);TSC = left(SCA,5);TMK = left(MK,5)
  892.    Transmit '\w2\f1\n1\caYou are currently using \q1'tnm'\ca and use \q1'DRIVENAME'\ca backup\c1.\n1'
  893.    Transmit ' \cbHis megs:\q1 'TFM'\cb   Name: \q1'TFN
  894.    Transmit '\cdYour megs:\q1 'tym'\n1';flag=1
  895.    if TROJ>0 then do;txt=left('\c1[3] \cbTrojans\c1:       \c7'ttr,51);sendstring txt;flag=flag+1;end
  896.    if SCA>0 then do;txt=left('\c1[4] \cbSCAs\c1:          \c7'TSC,51);if flag=2 then do;transmit txt;flag=1;end;else do;sendstring txt;flag=flag+1;end;end
  897.    if BW>0 then do;txt=left('\c1[5] \cbByte Warriors\c1: \c7'tbw,51);if flag=2 then do;transmit txt;flag=1;end;else do;sendstring txt;flag=flag+1;end;end
  898.    if MK>0 then transmit left('\c1[6] \cbMemory Killers\c1:\c7'TMK,51)
  899.    msg'\n2\c1   \c21\c1=\c3Line Noise,  \c22\c1=\c3Normal Hack, \c2Q\c1=\c3Run  or  enter a Virus number.\n1\c1-> \c7';pm
  900.    ANS = upper(RESULT)
  901.    if ANS = '?' then do
  902.       call FIGHTINIT
  903.    end
  904.    if ANS = 'Q' | ans = 'D' | ans = '' then call TRYDISC
  905.    if ans = '1' then call HACKEM
  906.    if ans = '2' then call HACKEM
  907.    if ans = '3' then do
  908.       if TROJ <=0 then do
  909.          Transmit 'You have no Trojans!';call FIGHTINIT
  910.       end
  911.       TROJUSED = TROJUSED + 1;TROJ = TROJ - 1;call HACKEM
  912.    end
  913.    if ans = '4' then do
  914.       if SCA <= 0 then do
  915.          Transmit 'You have no SCA Viruses!';call FIGHTINIT
  916.       end
  917.       SCAUSED = SCAUSED + 1;SCA = SCA - 1
  918.       call HACKEM
  919.    end
  920.    if ans = '5' then do
  921.       if BW <= 0 then do
  922.          Transmit 'You have no Byte Warriors!'
  923.          call FIGHTINIT
  924.       end
  925.       BWUSED = BWUSED + 1;BW = BW - 1
  926.       call HACKEM
  927.    end
  928.    if ans = '6' then do
  929.       if MK <= 0 then do
  930.          Transmit 'You have no Memory Killers!'
  931.          call FIGHTINIT
  932.       end
  933.       MKUSED = MKUSED + 1;MK = MK - 1
  934.       call HACKEM
  935.    end
  936.  
  937.  
  938.    if ans = '9' then do
  939.       if xrp > 3000000 then do
  940.        Transmit 'President of the HAA automatic termination.....'
  941.        Transmit 'That computer is totally destroyed, 'ALIAS'!'
  942.        winflag = 0;fndmeg = 0;call WRITEBBS
  943.       end
  944.       Transmit 'Security breach!'
  945.    end
  946.  
  947.    call TRYDISC
  948.  
  949.  
  950. HACKEM:
  951.    transmit;call rndc
  952.    if ANS = 1 then sendstring '&^#@G!$KG*&%!@#($&^Yµ¡¤þ¾¼þ«·¾½¼¢tiyuTIYT^*!%#@$  '
  953.    if ANS = 2 then sendstring 'You try to hack at his computer\c1..'
  954.    if ANS = 3 then sendstring 'You try to upload a Trojan\c1..'
  955.    if ANS = 4 then sendstring 'You try to upload an SCA\c1..'
  956.    if ANS = 5 then sendstring 'You try to upload a Byte Warrior\c1..'
  957.    if ANS = 6 then sendstring 'You try to upload a Memory Killer\c1..'
  958.    call rndc
  959.    if ANS = 1 then THRAN = random(1,2,time('s'))
  960.    if ANS = 2 then THRAN = random(1,3,time('s'))
  961.    if ANS = 3 then THRAN = random(1,ttyp,time('s'))
  962.    if ANS = 4 then THRAN = random(1,ttyp,time('s'))
  963.    if ANS = 5 then THRAN = random(1,ttyp,time('s'))
  964.    if ANS = 6 then THRAN = random(1,ttyp,time('s'))
  965.  
  966.    if THRAN <= ttyp then do
  967.       call RANDOMHITMESS
  968.       if ANS = 1 then THdam = random(1,10,time('s'))
  969.       if ANS = 2 then THdam = random(1,15,time('s'))
  970.       if ANS = 3 then do
  971.          THdam = random(1,100,time('s'))
  972.          Transmit 'The Trojan succeeds!'
  973.       end
  974.       if ANS = 4 then do
  975.          THdam = random(1,75,time('s'))
  976.          Transmit 'The SCA messes him up!'
  977.       end
  978.       if ANS = 5 then do
  979.          THdam = random(1,50,time('s'))
  980.          Transmit 'Byte Warrior city on his end!'
  981.       end
  982.       if ANS = 6 then do
  983.          THdam = random(100,200,time('s'))
  984.          Transmit 'The memory killer plasters his drive!'
  985.       end
  986.  
  987.       if THDAM > fndmeg then THDAM = fndmeg
  988.       Transmit thdam' megs of his drive are jelly!'
  989.       fndmeg = fndmeg - THdam
  990.       if fndmeg <= 0 then do
  991.          winflag = 0
  992.          call WRITEBBS
  993.       end
  994.       totmgcr = totmgcr + THDAM
  995.       transmit
  996.    end
  997.  
  998.    if THRAN > ttyp then do
  999.       if ANS = 1 | ANS = 2 then Transmit 'You fail!'
  1000.       if ANS = 3 then do
  1001.       Transmit 'The Trojan fails!'
  1002.       end
  1003.       if ANS = 4 then do
  1004.       Transmit 'The SCA fails!'
  1005.       end
  1006.       if ANS = 5 then do
  1007.       Transmit 'The Byte Warrior does not succeed!'
  1008.       end
  1009.       if ANS = 6 then do
  1010.       Transmit 'The Memory Killer does not work!'
  1011.       end
  1012.    end
  1013. transmit;call HISTURN
  1014. call rndc;call HISCOMBAT
  1015.  
  1016. HISCOMBAT:
  1017. if HEHIT = 0 then do
  1018.    Transmit 'He doesnt do anything!'
  1019.    call FIGHTINIT
  1020. end
  1021. hisdam = random(1,fndmeg,time('s'))
  1022. if hisdam > megs then hisdam = megs
  1023. Transmit 'He trashes 'hisdam' megs on your computer!'
  1024. megs = megs - hisdam;megslost = megslost + hisdam
  1025. if megs <= 0 then do
  1026.    winflag = 1;call WRITEBBS
  1027. end
  1028. call FIGHTINIT
  1029.  
  1030.  
  1031. TRYDISC:
  1032. Transmit '\n1\c7You try to disconnect\c1...\n1'
  1033. HIT = random(1,2,time('s'))
  1034. if HIT = 1 then do
  1035.    Transmit '+++\n1\w2NO CARRIER'
  1036.    call DIAL
  1037. end
  1038. transmit '\c2You fail\c1!\n1'
  1039. DAM = random(1,fndmeg,time('s'))
  1040. oldmegs = megs
  1041. megs = megs - dam
  1042. if megs < 0 then megs = 0
  1043. if megs = 0 then do
  1044.    Transmit '\c4You are trashed TOTALLY\c1!\n1'
  1045.    megslost = megslost + oldmegs
  1046. end
  1047. if megs > 0 then do
  1048.    Transmit '\c4He did 'DAM' megs of damage\c1!\n1'
  1049.    megslost = megslost + dam
  1050. end
  1051. msg RETURN;pm;totalloss = totalloss + 1
  1052. WINFLAG = 1;call WRITEBBS
  1053.  
  1054.  
  1055. WRITEBBS:
  1056. LASTFIGHT = fndnm
  1057. if winflag = 0 then do
  1058.    extrabonus = random(1,3,time('s'))
  1059.    if extrabonus = 1 then do
  1060.       exbtype = random(1,50,time('s'))
  1061.       exbon = exbtype * 1000
  1062.       Transmit 'You get a special extra bonus of $'ExBon'!'
  1063.       money = money + exbon
  1064.       bankmoney = bankmoney - exbon
  1065.    end
  1066.    moneyfound = random(1,othermegs,time('s'))
  1067.    if othermegs > 500 then moneyfound = moneyfound * 2
  1068.    findvir = random(1,2,time('s'))
  1069.    vir = 'no';numvir = ''
  1070.    if findvir = 1 | findvir = 2 then do
  1071.       numvir = random(1,5,time('s'))
  1072.       virtyp = random(1,4,time('s'))
  1073.       if virtyp = 1 then do
  1074.          bw = bw + numvir;vir = 'Byte Warrior'
  1075.       end
  1076.       if virtyp = 2 then do
  1077.          troj = troj + numvir;vir = 'Trojan'
  1078.       end
  1079.       if virtyp = 3 then do
  1080.          sca = sca + numvir;vir = 'SCA'
  1081.       end
  1082.       if virtyp = 4  then do
  1083.          numvir = 1;mk = mk + 1;vir = 'Memory Killer'
  1084.       end
  1085.    end
  1086.    TOTALwins = TOTALwins + 1
  1087.    if WW=1 then xbns = othermegs*200
  1088.    else xbns = othermegs*100
  1089.    xrp = xrp + xbns
  1090.    money = money + moneyfound;bankmoney = bankmoney - moneyfound
  1091.    Transmit '\n1\c3The HAA rewards you with \cb'xbns'\c3 experience points and a cash'
  1092.    Transmit 'bonus of \cb$'moneyfound'\c1.'
  1093.    Transmit '\n1\c5You also find \c7'numvir' 'vir'\c5 virus(s)\c1.'
  1094. end
  1095. if winflag = 1 then do
  1096.    TOTALLOSS = TOTALLOSS + 1;transmit '\n1\c5You lost\c1!'
  1097. end
  1098. msg '\n1'RETURN;pm
  1099.  
  1100. if CALLINGFLAG = 1 then call open file, (PHONES'LOCAL'), 'R'
  1101. if CALLINGFLAG = 2 then call open file, (PHONES'MAINFRAMES'), 'R'
  1102. if CALLINGFLAG = 3 then call open file, (PHONES'GOV'), 'R'
  1103. if CALLINGFLAG = 4 then call open file, (PHONES'WAR'), 'R'
  1104. if CALLINGFLAG = 5 then call open file, (PHONES'HAA'), 'R'
  1105.       telnum = readln(file)
  1106.       do i = 1 to telnum
  1107.          locnm.i = readln(file);LOCALNUM.i = readln(file)
  1108.          locmg.i = readln(file);locwin.i = readln(file)
  1109.          loclos.i = readln(file)
  1110.       end
  1111. call close file
  1112. locnm.FOUNDLOOP = fndnm;LOCALNUM.FOUNDLOOP = fndnum
  1113. locmg.FOUNDLOOP = OTHERMEGS
  1114. if WINFLAG = 1 then locwin.FOUNDLOOP = locwin.FOUNDLOOP + 1
  1115. if WINFLAG = 0 then loclos.FOUNDLOOP = loclos.FOUNDLOOP + 1
  1116. if CALLINGFLAG = 1 then call open file, (PHONES'LOCAL'), 'R'
  1117. if CALLINGFLAG = 2 then call open file, (PHONES'MAINFRAMES'), 'R'
  1118. if CALLINGFLAG = 3 then call open file, (PHONES'GOV'), 'R'
  1119. if CALLINGFLAG = 4 then call open file, (PHONES'WAR'), 'R'
  1120. if CALLINGFLAG = 5 then call open file, (PHONES'HAA'), 'R'
  1121.      call writeln file, TELNUM
  1122.      do i = 1 to telnum
  1123.         call writeln file, locnm.i;call writeln file, LOCALNUM.i
  1124.         call writeln file, locmg.i;call writeln file, locwin.i
  1125.         call writeln file, loclos.i
  1126.      end
  1127. call close file
  1128. if WINFLAG=0 and HAH=1 then call wingame
  1129. call DIAL
  1130.  
  1131. HISTURN:
  1132. if OTHERMEGS < 50 then do
  1133.    HHRAN = random(1,5,time('s'))
  1134. end
  1135. if OTHERMEGS < 100 then do
  1136.    HHRAN = random(1,4,time('s'))
  1137. end
  1138. if OTHERMEGS < 150 then do
  1139.    HHRAN = random(1,3,time('s'))
  1140. end
  1141. if OTHERMEGS < 500 then do
  1142.    HHRAN = random(1,2,time('s'))
  1143. end
  1144. if OTHERMEGS < 1000 then do
  1145.    HHRAN = random(1,1,time('s'))
  1146. end
  1147. if hhran = 1 then HEHIT = 1
  1148. if hhran > 1 then HEHIT = 0
  1149. RETURN
  1150.  
  1151. RANDOMHITMESS:
  1152. RANMESS = random(1,5,time('s'))
  1153.   if RANMESS = 1 then do
  1154.      Transmit 'You got him!'
  1155.   end
  1156.   if RANMESS = 2 then do
  1157.      Transmit 'You nailed him!'
  1158.   end
  1159.   if RANMESS = 3 then do
  1160.      Transmit 'You fried him!'
  1161.   end
  1162.   if RANMESS = 4 then do
  1163.      Transmit 'He is french toast on that round!'
  1164.   end
  1165.   if RANMESS = 5 then do
  1166.      Transmit 'You can smell burnt chips thru the telephone lines!'
  1167.   end
  1168. RETURN
  1169.  
  1170. NUMBERLIST:
  1171. Transmit '\f1\c3bisting of\c1:\n1'
  1172. Transmit '\c3A. \cdLocal Boards              \cdEasy\n1\c3B. \c5Mainframes                \cfModerate\n1\c3C. \c5Government Computers      \caHard\n1'
  1173. sendstring '?\c1] \c7'
  1174. getchar;ANS = RESULT;call nc
  1175. if ANS='A' | ans='' then do
  1176.    transmit 'Local'
  1177.    if ~exists(phones'LOCAL') then do
  1178.       Transmit '\c2There is not a local telephone book. Tell the SysOp\c1!\n1'
  1179.       msg RETURN;pm
  1180.       call DIAL
  1181.    end
  1182.    call open file, (PHONES'LOCAL'), 'R'
  1183.         telnum = readln(file)
  1184.         do i = 1 to telnum
  1185.            locnm.i = readln(file);LOCALNUM.i = readln(file);locmg.i = readln(file)
  1186.            locwin.i = readln(file);loclos.i = readln(FILE)
  1187.         end
  1188.    call close file
  1189.    Transmit '\f1 \c3Megs      Number         WINS      LOSS      BBS Name '
  1190.    Transmit ' \c1----      ------         ----      ----      --------\c7'
  1191.    phonecount = 0
  1192.    do i = 1 to telnum
  1193.       phonecount = phonecount + 1
  1194.       lnum = left(LOCALNUM.i,15);lmeg = left(locmg.i,10)
  1195.       lnam = left(locnm.i,25);lwin = left(locwin.i,10)
  1196.       lloss = left(loclos.i,10)
  1197.       Transmit ' 'lmeg''lnum''lwin''lloss''lnam
  1198.       if phonecount > 20 then do
  1199.          msg RETURN;pm;phonecount = 0
  1200.          Transmit CLS
  1201.       end
  1202.    end
  1203.    Transmit '\n1\c2End of Local BBS List\c1.\n1'
  1204.    msg RETURN;pm;call DIAL
  1205. END
  1206.  
  1207.  if ANS = 'B' then do
  1208.     transmit 'Mainframes'
  1209.     if ~exists(phones'MAINFRAMES') then do
  1210.        Transmit '\c2There is not a Mainframe telephone book. Tell the SysOp\c1!\n1'
  1211.        msg RETURN;pm;call DIAL
  1212.     end
  1213.     call open file, (PHONES'MAINFRAMES'), 'R'
  1214.          telnum = readln(file)
  1215.          do i = 1 to telnum
  1216.             MAINFNAME.i = readln(file);MAINFNUM.i = readln(file)
  1217.             MAINFMEGS.i = readln(file);MAINFWINS.i = readln(file)
  1218.             MAINFLOSS.i = readln(FILE)
  1219.          end
  1220.     call close file
  1221.     Transmit '\f1\c3Megs      Number         WINS      LOSS      Mainframe'
  1222.     Transmit '\c1----      ------         ----      ----      ---------\c7'
  1223.     phonecount = 0
  1224.     do i = 1 to telnum
  1225.        phonecount = phonecount + 1
  1226.        mnum = left(MAINFNUM.i,15);mmeg = left(MAINFMEGS.i,10)
  1227.        mnam = left(MAINFNAME.i,25);mwin = left(MAINFWINS.i,10)
  1228.        mloss = left(MAINFLOSS.i,10)
  1229.        Transmit mmeg''mnum''mwin''mloss''mnam
  1230.        if phonecount > 20 then do
  1231.           msg RETURN;pm;phonecount = 0
  1232.           Transmit CLS
  1233.        end
  1234.     end
  1235.     Transmit '\n1\c2End of MainFrame List\c1.\n1'
  1236.     msg RETURN;pm;call DIAL
  1237.  END
  1238.  
  1239.  if ANS = 'C' then do
  1240.     transmit 'Government'
  1241.     if ~exists(phones'GOV') then do
  1242.        Transmit 'There is not a Goverment telephone book. Tell the SysOp!\n1'
  1243.        msg RETURN;pm;call DIAL
  1244.     end
  1245.     call open file, (PHONES'GOV'), 'R'
  1246.          telnum = readln(file)
  1247.          do i = 1 to telnum
  1248.             GOVNAME.i = readln(file);GOVNUM.i = readln(file)
  1249.             GOVMEGS.i = readln(file);GOVWINS.i = readln(file)
  1250.             GOVLOSS.i = readln(FILE)
  1251.          end
  1252.     call close file
  1253.     Transmit '\f1\c3Megs      Number         WINS      LOSS      Government Computer'
  1254.     Transmit '\c1----      ------         ----      ----      -------------------\c7'
  1255.     phonecount = 0
  1256.     do i = 1 to telnum
  1257.        phonecount = phonecount + 1
  1258.        gnum = left(GOVNUM.i,15);gmeg = left(GOVMEGS.i,10)
  1259.        gnam = left(GOVNAME.i,25);gwin = left(GOVWINS.i,10)
  1260.        gloss = left(GOVLOSS.i,10)
  1261.        Transmit gmeg''gnum''gwin''gloss''gnam
  1262.        if phonecount > 20 then do
  1263.           msg RETURN;pm;phonecount = 0;Transmit CLS
  1264.        end
  1265.     end
  1266.     Transmit '\n1\c2End of Goverment  List\c1.\n1'
  1267.     msg RETURN;pm;call DIAL
  1268.  END
  1269. Transmit 'What?'
  1270. RETURN
  1271.  
  1272.  
  1273. CONVERSION:
  1274. call open file, (misc'rxx.levconvert'), 'R';boom=0;do until boom=1
  1275. temp=readln(file);interpret temp;end;call close file
  1276. RETURN
  1277.  
  1278. OCONVERSION:
  1279. call open file, (misc'rxx.oconvert'), 'R';boom=0;do until boom=1
  1280. temp=readln(file);interpret temp;end;call close file
  1281. RETURN
  1282.  
  1283. OCONVERSION2:
  1284. call open file, (misc'rxx.oconvert2'), 'R';boom=0;do until boom=1
  1285. temp=readln(file);interpret temp;end;call close file
  1286. RETURN
  1287.  
  1288. MENU:
  1289. call open file, (misc'rxx.maindir'), 'R';boom=0;do until boom=1;fart=readln(file)
  1290. interpret fart;end;call close file;return
  1291.  
  1292. SENDMESS:
  1293. Transmit '\f1\caSend a user a message\c9:\n1'
  1294. txt='\cnSend a message to';call listusers;if toget='###' then call main
  1295. Transmit '\f1\cbPlease enter up to \c33\cb lines of transmissions\q1:'
  1296. Transmit '\cbHit RETURN(s) when your are done sending your message\c1.\n1'
  1297. Transmit '\c3This is your margin\c9:\n1'
  1298. Transmit '\c7:----:----:----:----:----:----:----:----:----:----:----:----:----:----:----:'
  1299. do i = 1 to 3
  1300.    call rndc
  1301.    msg'\cf';pm;ans=result
  1302.    line.i=left(ans,77)
  1303. end
  1304. sendstring '\n1\c3Send the above message? \c1(y/\c7N\c1)? \c7'
  1305. getchar;ans = result;call nc
  1306. if ans ~= 'N' then sendstring 'Yes';else do;transmit 'No.';call MAIN;end
  1307. call mailmessage;Transmit '\h3\caSent\c9.';call MAIN
  1308.  
  1309. USERLIST:
  1310. Transmit '\f1\cd Users currently playing Hacker\c1:\n1'
  1311. call open file, (play'ALIASES'), 'R'
  1312. do i = 1 to TOTALUSERS
  1313.    tempa = readln(file);tempb = readln(file);temp=i'.'
  1314.    if access ~=23 then lala='';else lala='\c1(\c2'tempb'\c1)'
  1315.    transmit '\c1'left(temp,3)' \cb'tempa'  'lala
  1316. end
  1317. call close file
  1318. msg '\n1'RETURN;pm
  1319. bg=1;call top
  1320. RETURN
  1321.  
  1322. YOURSTATS:
  1323. TEX = left(xrp,20);TMO = left(MONEY,10);TDT = left(drty,10)
  1324. TTT = left(ttyp,10);TST = left(MEGS,10);TSC = left(SCA,10)
  1325. TBW = left(BW,10);TTR = left(TROJ,10);UTR = left(TROJUSED,10)
  1326. UBW = left(BWUSED,10);USC = left(SCAUSED,10);UMK = left(MKUSED,10)
  1327. TMK = left(MK,10);TLN = left(LEVNAME,25);tlv = left(LEVEL,10)
  1328. Transmit '\f1\n1\c3Stats for 'name'\c1, \c3   Alias \c1"\c7'alias'\c1":\n1'
  1329. Transmit '\cb    Money\c1: $\c3'TMO'   \cbExperience\c1: \c3'TEX
  1330. Transmit '\cb    Level\c1: \c3'tlv'    \cbLevel Name\c1: \c3'TLN
  1331. Transmit '\cbDrivetype\c1: \c3'TDT'    \cb  Terminal\c1: \c3'TTT
  1332. Transmit '\cb  Storage\c1: \c3'TST'\h1\cbMB Lost/Crashed\c1: \c3'megslost'\c1/\c3'totmgcr
  1333. Transmit '\n1\cd    Virus Statistics\c1:\n1'
  1334. Transmit '\cb           SCAs\c1: \c3'TSC'   \cbUsed\c1: \c3'USC
  1335. Transmit '\cb  Byte Warriors\c1: \c3'TBW'   \cbUsed\c1: \c3'UBW
  1336. Transmit '\cb        Trojans\c1: \c3'TTR'   \cbUsed\c1: \c3'UTR
  1337. Transmit '\cbMemory  Killers\c1: \c3'TMK'   \cbUsed\c1: \c3'UMK
  1338. msg'\n1'RETURN;pm
  1339. LFI = left(LASTFIGHT,20);TPL = left(TOTALPLAYS,20);TWI = left(TOTALWINS,20)
  1340. TLO = left(TOTALLOSS,20)
  1341. Transmit '\f1   \cdWIN/LOSS/PLAY Statistics\c1:\n1'
  1342. Transmit '\cb       Last Fight\c1: \c3'LFI
  1343. Transmit '\cb        Last Play\c1: \c3'DATE
  1344. Transmit '\cb      Total Plays\c1: \c3'TPL
  1345. Transmit '\cb       Total Wins\c1: \c3'TWI
  1346. Transmit '\cb     Total Losses\c1: \c3'TLO'\n1'
  1347. msg RETURN;pm
  1348. RETURN
  1349.  
  1350.  
  1351. RndC: /* Random Color Generator */
  1352. color = random(1,7,time('s'));sendstring '\c'color
  1353. RETURN
  1354.  
  1355. SPY:
  1356. Transmit '\f1\caSpy on another user\c1:\n1';txt='\cbSpy on';call listusers
  1357. call NC;if toget='###' then call main;call open file, (play''toget), 'R'
  1358. call readostats;call close file
  1359. call OCONVERSION2
  1360. Transmit '\n1\c3It will cost you \c1$\c7'OLEVEL*100'\c3 to spy on that person\c1.'
  1361. costtospy = OLEVEL *100
  1362. if money < costtospy then do
  1363.    Transmit '\n1\cbYou do not have enough money\c1!\n1'
  1364.    msg RETURN;pm;call MAIN
  1365. end
  1366. sendstring '\c3Spy on him? \c1(y/\c7N\c1) \c7';getchar;SPYANS = result
  1367. call NC;if spyans ~= 'Y' then call main
  1368. OTEX = left(oxper,20);OTMO = left(OMONEY,10);OTDT = left(odrtyp,10)
  1369. OTST = left(OMEGS,10);OTML = left(omlst,10);OTSC = left(OSCA,10);OTBW = left(OBW,10)
  1370. OUBW = left(OBWUSED,10);OUSC = left(OSCAUSED,10);OTMK = left(OMK,10)
  1371. Otlv = left(OLEVEL,10)
  1372. Transmit '\f1\c3Stats for \cb'Oalias'\c1:\n1'
  1373. Transmit '\cb    Money\c1: $\c3'OTMO'   \cbExperience\c1: \c3'Oxper
  1374. Transmit '\cb    Level\c1: \c3'Otlv'    \cbLevel Name\c1: \c3'Olevname
  1375. Transmit '\cbDrivetype\c1: \c3'OTDT'      \cbTerminal\c1: \c3'Ottyp
  1376. Transmit '\cb  Storage\c1: \c3'OTST'     \cbMegs lost\c1: \c3'OTML' \cbMegs Crashed\c1: \c3'Otmcr
  1377. Transmit '\cb     SCAs\c1: \c3'OTSC' \cbByte Warriors\c1: \c3'OTBW'      \cbTrojans\c1: \c3'otroj
  1378. Transmit '\cbSCAs used\c1: \c3'OUSC'      \cbBWs Used\c1: \c3'OUBW' \cbTrojans Used\c1: \c3'otrojused
  1379. Transmit '\cb Mem Kill\c1: \c3'OTMK'      \cbMKs Used\c1: \c3'Omkused'\n1'
  1380. Transmit '  \cdWin/Loss/Play Statistics\c1:\n1'
  1381. Transmit '\cb  Last Fight\c1: \c3'OLfght
  1382. Transmit '\cb   Last Play\c1: \c3'Odate
  1383. Transmit '\cb Total Plays\c1: \c3'Otpl
  1384. Transmit '\cb  Total Wins\c1: \c3'Otwin
  1385. Transmit '\cbTotal Losses\c1: \c3'OTloss'\n1'
  1386. msg '\n1'RETURN;pm
  1387. money = money - olevel*200
  1388. stor=alias;alias='Hacker v4.5';line.1=stor' Spied on you!';line.2='';line.3=''
  1389. call mailmessage;alias=stor;call MAIN
  1390.  
  1391. TOP:
  1392. if bg = 1 then Transmit '\f1\cfSorting players\c1...'
  1393. call open file, (play'REALNAMES'), 'R'
  1394.      do i = 1 to TOTALUSERS
  1395.         REALname.i = readln(file)
  1396.      end
  1397. call close file
  1398.  
  1399. do i = 1 to totalusers
  1400.    call open file, (play''REALNAME.i), 'R'
  1401.    OALIAS.i = readln(file);OMONEY.i = readln(file)
  1402.    OMEGS.i = readln(file);OSCA.i = readln(file)
  1403.    OBW.i = readln(file);OTROJ.i = readln(file)
  1404.    odrtyp.i = readln(file);ottyp.i = readln(file)
  1405.    oxper.i = readln(file);olfght.i = readln(file)
  1406.    ODATE.i = readln(file);otpl.i = readln(file)
  1407.    otmcr.i = readln(file);otwin.i = readln(file)
  1408.    otloss.i = readln(file);omlst.i = readln(file)
  1409.    OBWUSED.i = readln(file);OTROJUSED.i = readln(file)
  1410.    OSCAUSED.i = readln(file);OMKUSED.i = readln(file)
  1411.    OMK.i = readln(file);call close file
  1412. END
  1413.  
  1414. n = totalusers-1;o = totalusers-1
  1415. do i = 1 to n
  1416.    do j = 1 to o
  1417.       q = j + 1
  1418.       if oxper.q > oxper.j then do
  1419.          temp = oxper.j;tempname = OALIAS.j
  1420.          oxper.j = oxper.q;OALIAS.j = OALIAS.q;oxper.q = temp;OALIAS.q = tempname
  1421.       end
  1422.    end
  1423. end
  1424. call open nfile, (play''Top15), 'W'
  1425. call writeln nfile,'\f1 \cdTop 15 Hackers\c1:\n1'
  1426. call writeln nfile,'  \c5#   Alias                    Experience     Level\c3'
  1427. toloop = 15
  1428. if totalusers < toloop then toloop = totalusers
  1429. DO I = 1 to toloop
  1430.    call OCONVERSION;OALIAS = left(OALIAS.i,25)
  1431.    OEXP = left(oxper.i,15);OLEVNAME = left(OLEVNAME,30);temp=i'.'
  1432.    call writeln nfile,'  \cb'left(temp,3)' \c3'OALIAS''OEXP''OLEVNAME
  1433. end
  1434. call close nfile
  1435. if bg = 1 then do; sendfile play''top15
  1436. msg'\n1'RETURN;pm;end
  1437. bg = 0
  1438. return
  1439.  
  1440. BANK:
  1441. pmo = left(money,23);psa = left(savings,22);bmo = left(bankmoney,20)
  1442. Transmit '\f1  \c9ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
  1443. Transmit '  \c9³    \cdPocket Money            Savings Account        Bank Money           \c9³'
  1444. Transmit '  \c9³    \c1$\c5'pmo'\c1$\c5'psa'\c1$\c5'bmo'\c9³'
  1445. Transmit '  \c9ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'
  1446. sendfile misc'sys.bank'
  1447. sendstring '\c1-> \cf';getchar;ans=result;if ans='#' then call quickexit
  1448. if ans = 'E' then do;transmit 'Exit';call MAIN;end
  1449. if ans = 'D' then do
  1450.    if money <=0 then do
  1451.       Transmit 'Deposit\n2\c2You are holding no money\c1!\n1'
  1452.       msg RETURN;pm
  1453.       call MAIN
  1454.    end
  1455. msg'Desposit\c1.\n2\c3Deposit how much \c1(\c7Q\c1=\c7Quit\c1)?   \c1$\c7';pm
  1456. ans = result;call NC
  1457. if ans > money then do
  1458.    Transmit '\n1\c2You do not have that much\c1!';msg'\n1'RETURN;pm;call MAIN
  1459. end
  1460. if ans = '' then call MAIN
  1461. money = money - ans;savings = savings + ans
  1462. call open file, (BNK''NAME), 'W';call writeln file, SAVINGS;call close file
  1463. Transmit '\n1\c1$\c7'ANS' \c3deposited\c1.  \c3You now have \c1$\c7'SAVINGS'\c3 in your savings account\c1, \c3and \c1$\c7'money'\c3'
  1464. transmit 'in your pocket\c1.';msg'\n1'RETURN;pm;call MAIN
  1465. end
  1466.  
  1467. if ans = 'W' then do
  1468. if ~exists(BNK''NAME) then do
  1469. Transmit 'Withdraw\c1.\n2\c5You have no Savings Account\c1.\n1'
  1470. msg RETURN;pm;call MAIN;end
  1471. msg'Withdraw\c1.\n2\c3Withdraw how much \c1(\c7Q\c1=\c7Quit\c1)?   $\c7';pm
  1472. ANS = result;call NC
  1473. if ans = '' | ans = 'Q' | ans = 'q' then call MAIN;if ans > savings then do
  1474. Transmit '\n1\c2Not enough in account\c1.\n1';msg RETURN;pm;call MAIN;end
  1475. money = money + ans;savings = savings - ans
  1476. call open file, (BNK''NAME), 'W';call writeln file, SAVINGS;call close file
  1477. Transmit '\n1\c1$\c7'ans'\c3 withdrawn\c1.  \c3You now have \c1$\c7'money'\c1.\n1'
  1478. msg RETURN;pm;call MAIN;end;call MAIN;end
  1479.  
  1480. NC:
  1481.  
  1482. if maincounter >= MAXTURNS then do
  1483. Transmit '\n1\cbYou are out of turns for this call\c1.  \c3Try tomorrow\c1.\n1'
  1484. msg RETURN;pm;call BEXIT;end
  1485. if storage() < minbyte then do;transmit '\n1\caMemory running low\c1! \c2Exiting game\ca..'
  1486. call bexit2;end;return
  1487.  
  1488. BEXIT:
  1489. transmit 'Process 4 ending\n1endcli\w1\n2\caSaving your stats\c1..'
  1490. call top
  1491. BEXIT2:
  1492. call open file, (BNK'MONBANK'), 'W';call writeln file, BANKMONEY;call close file
  1493. TOTALPLAYS = TOTALPLAYS + 1
  1494. call open file, (play''NAME), 'W'
  1495. call savestats;call close file
  1496. transmit '\n2\c3Hacker v4.0 \c1- \c3Originaly by \cbPatrick Baker\c3, modified by \cbThe Brazilian\c3'
  1497. transmit '\c3Hacker v4.5 \c1- \c3Modified by \cfDiamond Back\c3 for the \cfFLIPSIDE \c3(305)596-6711'
  1498. SHUTDOWN
  1499. exit
  1500.  
  1501.  
  1502. TERMCOST:    /* Used to determine how much terminals cost */
  1503. if ans = 2 then cost = 1000;if ans = 3 then cost = 10000
  1504. if ans = 4 then cost = 50000;if ans = 5 then cost = 100000
  1505. if ans = 6 then cost = 200000;if ans = 7 then cost = 500000
  1506. if ans = 8 then cost = 1000000;if ans = 9 then cost = 200000
  1507. return
  1508.  
  1509. HARDCOST:    /* Used to determine how much hardware costs */
  1510. if ans = 2 then cost = 1000;if ans = 3 then cost = 10000
  1511. if ans = 4 then cost = 50000;if ans = 5 then cost = 100000
  1512. if ans = 6 then cost = 150000;if ans = 7 then cost = 200000
  1513. return
  1514.  
  1515. READSTATS:
  1516. ALIAS = readln(file);MONEY = readln(file);MEGS = readln(file)
  1517. SCA = readln(file);BW = readln(file);TROJ = readln(file);drty = readln(file)
  1518. ttyp = readln(file);xrp = readln(file);LASTFIGHT = readln(file);DATE = readln(file)
  1519. TOTALPLAYS = readln(file);totmgcr = readln(file);TOTALWINS = readln(file)
  1520. TOTALLOSS = readln(file);MEGSLOST = readln(file);BWUSED = readln(file)
  1521. TROJUSED = readln(file);SCAUSED = readln(file);MKUSED = readln(file)
  1522. MK = readln(file);LASTDPLAYED = readln(file);MAINCOUNTER = readln(file)
  1523. WD = readln(file)
  1524. return
  1525.  
  1526. SAVESTATS:
  1527. call writeln file,ALIAS;call writeln file,MONEY
  1528. call writeln file,MEGS;call writeln file,SCA;call writeln file,BW
  1529. call writeln file,TROJ;call writeln file,drty;call writeln file,ttyp
  1530. call writeln file,xrp;call writeln file,LASTFIGHT;call writeln file,NEWDATE
  1531. call writeln file,TOTALPLAYS;call writeln file,totmgcr;call writeln file,TOTALWINS
  1532. call writeln file,TOTALLOSS;call writeln file,MEGSLOST;call writeln file,BWUSED
  1533. call writeln file,TROJUSED;call writeln file,SCAUSED;call writeln file,MKUSED
  1534. call writeln file,MK; call writeln file,DATEONLY; call writeln file,MAINCOUNTER
  1535. call writeln file,WD
  1536. return
  1537.  
  1538. SAVEOSTATS:
  1539. call writeln file, OALIAS;call writeln file, OMONEY;call writeln file, OMEGS
  1540. call writeln file, OSCA;call writeln file, OBW;call writeln file, OTROJ
  1541. call writeln file, odrtyp;call writeln file, ottyp;call writeln file, oxper
  1542. call writeln file, olfght;call writeln file, ODATE;call writeln file, otpl
  1543. call writeln file, otmcr;call writeln file, otwin;call writeln file, otloss
  1544. call writeln file, omlst;call writeln file, OBWUSED;call writeln file, OTROJUSED
  1545. call writeln file, OSCAUSED;call writeln file, OMKUSED;call writeln file, OMK
  1546. call writeln file, OLASTDPLAYED; call writeln file, OMAINCOUNTER;
  1547. call writeln file, OWD
  1548. return
  1549.  
  1550. READOSTATS:
  1551. OALIAS = readln(file);OMONEY = readln(file);OMEGS = readln(file)
  1552. OSCA = readln(file);OBW = readln(file);OTROJ = readln(file)
  1553. odrtyp = readln(file);ottyp = readln(file);oxper = readln(file)
  1554. olfght = readln(file);ODATE = readln(file);otpl = readln(file)
  1555. otmcr = readln(file);otwin = readln(file);otloss = readln(file)
  1556. omlst = readln(file);OBWUSED = readln(file);OTROJUSED = readln(file)
  1557. OSCAUSED = readln(file);OMKUSED = readln(file);OMK = readln(file)
  1558. OLASTDPLAYED = readln(file); OMAINCOUNTER = readln(file)
  1559. OWD = readln(file)
  1560. return
  1561.  
  1562. MAILMESSAGE:
  1563. if ~exists(mess''toget) then do;call open file, (mess''toget), 'W'
  1564. call writeln file, '0';call close file;end
  1565. call open file, (MESS''toget), 'R'
  1566. newflag = readln(file)
  1567. do i = 1 to newflag;do x = 1 to 4;dat.i.x=readln(file);end;end;call close file
  1568. call open file, (mess''toget), 'W'
  1569. newflag=newflag+1;call writeln file, newflag
  1570. do i = 1 to newflag-1;do x = 1 to 4;call writeln file, dat.i.x;end;end
  1571. call writeln file, alias
  1572. do i = 1 to 3;call writeln file, line.i;end;call close file
  1573. return
  1574.  
  1575. TOPTENSAVE:
  1576. if ~exists(play'last10') then do;call open file, (play'last10'),'W'
  1577. do i = 1 to 10;call writeln file, ' ---- ';end;call close file;end
  1578. call open file, (play'last10'), 'R';do i = 1 to 10;temp.i=readln(file);end
  1579. call close file;call open file, (play'last10'), 'W';call writeln file, txt
  1580. do i = 1 to 9;call writeln file, temp.i;end;call close file;return
  1581.  
  1582. LISTUSERS:
  1583. call open file, (play'Aliases'), 'R';flag=0;do i=1 to totalusers
  1584. tempa.i=readln(file);tempb.i=readln(file);flag=flag+1
  1585. if flag=2 then do;transmit '\c1'left(i,2)'. \cb'tempa.i;flag=0;end
  1586. else sendstring '\c1'left(i,2)'. \cb'left(tempa.i,35);end
  1587. if flag=1 then transmit;call close file
  1588. sendstring '\n1'txt' whom? \c1(\c3Q\c1=\c3Quit\c1) : \cf'
  1589. if totalusers >= 10 then do;getchar;ja=result;sendstring ja
  1590. getchar;jaja=result;sendstring '\h1'
  1591. if c2d(jaja)=13 then ans=ja;else ans=ja||jaja;end;else do;getchar;ans=result;end
  1592. if ans='Q' then do;transmit '\caAborted.';toget='###';return;end
  1593. if tempa.ans=alias then do;transmit '\caThats you!';toget='###';return;end
  1594. if ans > totalusers | ans <= 0 then do;transmit '\caInvalid user.';toget='###';return;end
  1595. transmit tempa.ans;toget=tempb.ans;return
  1596.  
  1597.  
  1598. QUICKEXIT:
  1599.  
  1600. SHUTDOWN
  1601. exit
  1602.  
  1603. ERROR:
  1604. transmit '\n1\caAn error has occured in the game\c1.. \c2Exiting\c1..'
  1605. SHUTDOWN
  1606. exit
  1607.  
  1608. SYNTAX:
  1609. transmit '\n1\caAn error has occured in the game\c1.. \c2Exiting\c1..'
  1610. SHUTDOWN
  1611. exit
  1612.  
  1613. IOERR:
  1614. transmit '\n1\caAn error has occured in the game\c1.. \c2Exiting\c1..'
  1615. SHUTDOWN
  1616. exit
  1617.  
  1618. HALT:
  1619. transmit '\n1\caARexx HALT issued by the sysop \c1- \c2Shutting down\c1..'
  1620. call bexit2
  1621.  
  1622. TURNS:
  1623.   MAINCOUNTER=MAINCOUNTER+1
  1624.   If MAINCOUNTER > MAXTURNS then do
  1625.     Transmit "\n1\c2You're out of turns for today!\n1Try again tommorow!\q1\n1"
  1626.     msg RETURN;pm
  1627.     call BEXIT
  1628.   end
  1629. return
  1630. GETDATE:
  1631.   DateOnly=right(DATE,18)
  1632.   DateOnly=left(DateOnly,11)
  1633. return
  1634. CHECKLPLAY:
  1635.   If Access = 23 Then do; MainCounter = 0; return; end
  1636.   If DATEONLY ~= LASTDPLAYED then do;Maincounter=0;return;end
  1637.   If Maincounter > Maxturns then do;Transmit '\f1\c2Sorry, you have used up all your turns for today.\n1Try again tommorrow.\n2\q1'
  1638.   call QUICKEXIT;end
  1639. return
  1640. AddNumbers:
  1641.   if access ~= 23 then call dial
  1642.   transmit cls
  1643.   sendfile misc||'AddNumber.Menu'
  1644.   Sendstring '\c3Enter Number: \c4';getchar
  1645.   ans=upper(result);transmit ans
  1646.   call nc
  1647.   if ans = 'Q' then call dial
  1648.    else if ans = '1' then numfile = 'local'
  1649.    else if ans = '2' then numfile = 'mainframe'
  1650.    else if ans = '3' then numfile = 'gov'
  1651.    else if ans = '4' then numfile = 'war'
  1652.    else call addnumbers
  1653.   if ~exists(phones''numfile) then do
  1654.     open nfile,(phones''numfile), 'W'
  1655.     writeln nfile,'1'
  1656.     mnx=1
  1657.   end
  1658.   else do
  1659.     call open nfile, (phones''numfile), 'R'
  1660.     telnum=readln(nfile)
  1661.     do i=1 to telnum
  1662.       locnm.i=readln(nfile)
  1663.       localnum.i=readln(nfile)
  1664.       locmg.i=readln(nfile)
  1665.       locwin.i=readln(nfile)
  1666.       locloss.i=readln(nfile)
  1667.     end
  1668.     call close nfile
  1669.     call open nfile, (phones''numfile), 'W'
  1670.     telnum=telnum+1
  1671.     call writeln nfile, telnum
  1672.   end
  1673.   Transmit CLS
  1674.   msg '\c3Enter the name\n1: \c4';pm
  1675.   locnm.telnum=result
  1676.   call nc
  1677.   msg '\c3Enter the number\n1: \c4';pm
  1678.   localnum.telnum=result
  1679.   call nc
  1680.   msg '\c3Enter the storage in Megs\n1: \c4';pm
  1681.   locmg.telnum=result
  1682.   call nc
  1683.   locwin.telnum=0
  1684.   locloss.telnum=0
  1685.   do i=1 to telnum
  1686.      call writeln nfile,locnm.i
  1687.      call writeln nfile,localnum.i
  1688.      call writeln nfile,locmg.i
  1689.      call writeln nfile,locwin.i
  1690.      call writeln nfile,locloss.i
  1691.   end
  1692.   call close nfile
  1693. call dial
  1694. WARDIAL:
  1695.   Transmit CLS
  1696.   If WD=1 then do
  1697.     transmit 'WarDialer is already running!'
  1698.     return
  1699.   end
  1700.   sendfile misc'wardial.txt'
  1701.   sendstring '\n1\c7Run wardialer? '
  1702.   getchar
  1703.   ans=upper(result)
  1704.   if ans ~= 'Y' then return
  1705.   transmit 'Yes'
  1706.   if money<10000 then do
  1707.     transmit 'You can''t afford it.'
  1708.     return
  1709.   end
  1710.   wd=1
  1711.   if access ~= 23 then money=money-10000
  1712.   transmit '\n2\c4Wardialer should have results ready by tommorrow.'
  1713.   transmit '\c3Thank you for using \c7Global WarDialer v1.0\w2\q1'
  1714.   call turns
  1715. return
  1716. CHECKWARDIAL:
  1717.   If (WD ~= 1) | ((Access ~= 23) & (Dateonly = LastDPlayed)) then return
  1718.   Transmit '\f1\c5Checking WarDialer Results...\q1'
  1719.   call open file, (phones''war), 'R'
  1720.   wnum=readln(file)
  1721.   do i=1 to wnum
  1722.     locnm.i=readln(file)
  1723.     localnum.i=readln(file)
  1724.     locmg.i=readln(file)
  1725.     locwin.i=readln(file)
  1726.     locloss.i=readln(file)
  1727.   end
  1728.   call close file
  1729.   call open file, (phones''HAA), 'R'
  1730.     blah=readln(file)
  1731.     locnm.0=readln(file)
  1732.     localnum.0=readln(file)
  1733.     locmg.0=readln(file)
  1734.   call close file
  1735.   do
  1736.   wfnd=random(0,wnum%8, time('s'))
  1737.   If wfnd = 0 then do
  1738.     transmit '\n1\c2You found no numbers this time!\q1\w2'
  1739.     wd=0
  1740.     return
  1741.   end
  1742.   do i=1 to wfnd
  1743.     fndw=random(0,(wnum+2),time('s'))
  1744.     if fndw=wnum+1 || fndw=wnum+2 then fndw=0
  1745.     do j=1 to i-1
  1746.       if fndw=wn.j then i=i-1
  1747.     end
  1748.     wn.i=fndw
  1749.   end
  1750.   transmit '\n1\c3You found these numbers...  \c4Write them down!'
  1751.   do i=1 to wfnd
  1752.     k=wn.i
  1753.     transmit '\c7Name:\c3['||locnm.k'] \c7Phone Number:\c3['||localnum.k'] \c7Storage:\c3['||locmg.k' Megs]'
  1754.   end
  1755.   Transmit '\n1\c4Hit Any Key to Continue \g1\q1'
  1756.   WD=0
  1757. return
  1758. GENERATEHAA:
  1759. call open file, (phones'HAA'), 'W'
  1760. call writeln file,'1'
  1761. call writeln file,'Hackers Assoc. of America'
  1762. do i=1 to 7;n.i=random(0,9,time('s'));end
  1763. call writeln file,'619'||n.1||n.2||n.3||n.4||n.5||n.6||n.7
  1764. call writeln file,'999';call writeln file,'0';call writeln file,'0'
  1765. call close file
  1766. do i=1 to 7;drop n.i;end
  1767. return
  1768. WINGAME:
  1769. if exists(misc'sys.win') then sendfile misc||'sys.win'
  1770. if ~exists(misc'winners') then do
  1771.   call open file, (misc'winners'), 'W'
  1772.   call writeln file,'\a1\c2=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-='
  1773.   call writeln file,'- \c3The Legendary Hacker Hall of Fame \c2-'
  1774.   call writeln file,'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\q1'
  1775.   call writeln file,''
  1776. end
  1777. Else call open file,(misc'winners'), 'A'
  1778. call Writeln File, '\c7Name:\c3'||Alias' \c7EXP:\c3'||xrp' \c7Date:\c3'||dateonly
  1779. call close file
  1780. transmit ''
  1781. call generatehaa
  1782. address command 'delete' play'#?'
  1783. address command 'delete' mess'#?'
  1784. address command 'delete' bnk'#?'
  1785. call quickexit
  1786. return
  1787. SCAN:
  1788. j=0;sendfile misc'sys.scanner'
  1789. sendstring '\c7Do you wish to do a fight scan? '
  1790. getchar;ans=upper(result)
  1791. if ans ~= 'Y' then return
  1792. transmit 'Yes\n1'
  1793. if (money < 15000) & (access ~= 23) then do;transmit '\n1\c2You can not afford it!\n1';return;end
  1794. if access ~= 23 then money=money-15000
  1795. call open file, (play'Aliases'), 'R'
  1796. do i=1 to totalusers
  1797.   tempa=readln(file);tempb=readln(file)
  1798.   call open nfile, (play''tempb), 'R'
  1799.   oalias=readln(nfile);omoney=readln(nfile);omegs=readln(nfile)
  1800.   if (omegs > 0) & (oalias ~= alias) then do;j=j+1;transmit '\c5'||j')\c2' oalias;end
  1801.   call close nfile
  1802. end
  1803. call close file
  1804. if j=0 then transmit '\c2Everyone is trashed!\q1\n1'
  1805. else transmit '\c7End of scan.\q1\n1'
  1806. return
  1807.  
  1808.